﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;

namespace Amazon.Route53.DataContracts
{
    /// <summary>
    /// contains the response information for the hosted zone.
    /// </summary>
    [DataContract(Name = "GetHostedZoneResponse",
       Namespace = Constants.Namespace)]
    public class HostedZoneDetail
    {
        /// <summary>
        /// contains the specific identifying information about the hosted zone.
        /// </summary>
        [DataMember(Order = 1)]
        public HostedZone HostedZone { get; set; }

        /// <summary>
        ///describes change information about changes made to your hosted zone.
        ///This element contains an ID that you use when performing a GetChange action to get detailed information about the change.
        /// </summary>
        [DataMember(Order = 2, EmitDefaultValue = false)]
        public ChangeInfo ChangeInfo { get; set; }

        /// <summary>
        /// Describes name server information
        /// </summary>
        [DataMember(Order = 3)]
        public DelegationSet DelegationSet { get; set; }


        public ListResourceRecordSetsResponse ResourceRecordSets { get; set; }



    }

    [DataContract(Namespace = Constants.Namespace)]
    public class DelegationSet
    {
        /// <summary>
        /// identifies the authoritative name servers for the hosted zone. You ask your registrar to add an NS record to your domain for each NameServer assigned to your hosted zone
        /// </summary>
        [DataMember]
        public NameServerCollection NameServers { get; set; }
    }


    [CollectionDataContract(Namespace = Constants.Namespace, ItemName = "NameServer")]
    public class NameServerCollection : List<string>
    {
    }

    [DataContract(Name = "CreateHostedZoneResponse", Namespace = Constants.Namespace)]
    public class CreateHostedZoneResponse : HostedZoneDetail
    {
    }



}
